home *** CD-ROM | disk | FTP | other *** search
/ MacWorld 1999 July / Macworld (1999-07).dmg / Shareware World / Info / For Developers / Mops 3.4.sea / Mops ƒ / String < prev    next >
MacBinary  |  1998-07-27  |  8.5 KB  |  [TEXT/MSET]

open in: MacOS 8.1     |     Win98     |     DOS

view JSON data     |     view as text

This file was processed as: MacBinary (archive/macBinary).

You can browse this item here: String

ConfidenceProgramDetectionMatch TypeSupport
10% dexvert MacBinary (archive/macBinary) fallback Supported
10% dexvert Jesper Olsen Module (music/jesperOlsen) magic Supported
1% dexvert Text File (text/txt) fallback Supported
100% file MacBinary II, inited, Mon Jul 27 11:55:38 1998, modified Mon Jul 27 11:55:38 1998, creator 'MSET', type ASCII, 8086 bytes "String" , at 0x2016 381 bytes resource default (weak)
99% file data default
49% TrID Macintosh plain text (MacBinary) default
33% TrID TTComp archive compressed (bin-4K) default (weak)
16% TrID MacBinary 2 default (weak)
100% lsar MacBinary default


id metadata
keyvalue
macFileType[TEXT]
macFileCreator[MSET]



hex view
+--------+-------------------------+-------------------------+--------+--------+
|00000000| 00 06 53 74 72 69 6e 67 | 00 00 00 00 00 00 00 00 |..String|........|
|00000010| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000020| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000030| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000040| 00 54 45 58 54 4d 53 45 | 54 01 00 00 00 00 00 00 |.TEXTMSE|T.......|
|00000050| 00 00 00 00 00 1f 96 00 | 00 01 7d b1 e2 53 7a b1 |........|..}..Sz.|
|00000060| e2 53 7a 00 00 06 00 00 | 00 00 00 00 00 00 00 00 |.Sz.....|........|
|00000070| 00 00 00 00 00 00 00 00 | 00 00 81 81 02 a0 00 00 |........|........|
|00000080| 5c 20 53 74 72 69 6e 67 | 20 63 6c 61 73 73 2e 0d |\ String| class..|
|00000090| 0d 63 72 20 2e 28 20 6c | 6f 61 64 69 6e 67 20 53 |.cr .( l|oading S|
|000000a0| 74 72 69 6e 67 2e 2e 2e | 29 0d 0d 5c 20 54 68 69 |tring...|)..\ Thi|
|000000b0| 73 20 63 6c 61 73 73 20 | 69 73 20 63 68 61 6e 67 |s class |is chang|
|000000c0| 65 64 20 72 61 64 69 63 | 61 6c 6c 79 20 66 72 6f |ed radic|ally fro|
|000000d0| 6d 20 4e 65 6f 6e 21 20 | 20 57 65 20 6e 6f 77 20 |m Neon! | We now |
|000000e0| 6b 65 65 70 20 74 77 6f | 20 6f 66 66 73 65 74 73 |keep two| offsets|
|000000f0| 20 69 6e 74 6f 20 61 20 | 73 74 72 69 6e 67 0d 5c | into a |string.\|
|00000100| 20 2d 20 50 4f 53 20 61 | 6e 64 20 4c 49 4d 2e 20 | - POS a|nd LIM. |
|00000110| 20 50 4f 53 20 6d 61 72 | 6b 73 20 74 68 65 20 22 | POS mar|ks the "|
|00000120| 63 75 72 72 65 6e 74 22 | 20 70 6f 73 69 74 69 6f |current"| positio|
|00000130| 6e 2c 20 61 6e 64 20 4c | 49 4d 20 74 68 65 20 22 |n, and L|IM the "|
|00000140| 63 75 72 72 65 6e 74 22 | 20 65 6e 64 2e 0d 5c 20 |current"| end..\ |
|00000150| 4d 6f 73 74 20 73 74 72 | 69 6e 67 20 6f 70 65 72 |Most str|ing oper|
|00000160| 61 74 69 6f 6e 73 20 6f | 70 65 72 61 74 65 20 6f |ations o|perate o|
|00000170| 6e 20 74 68 65 20 73 75 | 62 73 74 72 69 6e 67 20 |n the su|bstring |
|00000180| 64 65 6c 69 6d 69 74 65 | 64 20 62 79 20 50 4f 53 |delimite|d by POS|
|00000190| 20 61 6e 64 20 4c 49 4d | 2c 20 77 68 69 63 68 0d | and LIM|, which.|
|000001a0| 5c 20 77 65 20 63 61 6c | 6c 20 74 68 65 20 61 63 |\ we cal|l the ac|
|000001b0| 74 69 76 65 20 70 61 72 | 74 20 6f 66 20 74 68 65 |tive par|t of the|
|000001c0| 20 73 74 72 69 6e 67 2e | 20 57 65 20 61 6c 73 6f | string.| We also|
|000001d0| 20 6b 65 65 70 20 74 68 | 65 20 73 69 7a 65 20 6f | keep th|e size o|
|000001e0| 66 20 74 68 65 20 73 74 | 72 69 6e 67 20 28 74 68 |f the st|ring (th|
|000001f0| 65 0d 5c 20 72 65 61 6c | 20 73 69 7a 65 2c 20 74 |e.\ real| size, t|
|00000200| 68 61 74 20 69 73 29 20 | 69 6e 20 61 6e 20 69 76 |hat is) |in an iv|
|00000210| 61 72 2c 20 73 6f 20 74 | 68 61 74 20 77 65 20 63 |ar, so t|hat we c|
|00000220| 61 6e 20 67 65 74 20 69 | 74 20 71 75 69 63 6b 6c |an get i|t quickl|
|00000230| 79 20 77 69 74 68 6f 75 | 74 20 61 20 73 79 73 74 |y withou|t a syst|
|00000240| 65 6d 0d 5c 20 63 61 6c | 6c 2e 0d 0d 20 20 20 24 |em.\ cal|l... $|
|00000250| 20 44 09 63 6f 6e 73 74 | 61 6e 74 09 52 45 54 09 | D.const|ant.RET.|
|00000260| 09 09 5c 20 43 61 72 72 | 69 61 67 65 20 72 65 74 |..\ Carr|iage ret|
|00000270| 75 72 6e 20 63 68 61 72 | 61 63 74 65 72 0d 0d 3a |urn char|acter..:|
|00000280| 20 24 45 52 0d 09 73 65 | 74 46 77 69 6e 64 0d 09 | $ER..se|tFwind..|
|00000290| 63 72 20 2e 22 20 73 69 | 7a 65 3a 20 22 20 2e 20 |cr ." si|ze: " . |
|000002a0| 20 2e 22 20 20 20 70 6f | 73 3a 20 22 20 2e 20 20 | ." po|s: " . |
|000002b0| 2e 22 20 20 20 6c 69 6d | 3a 20 22 20 2e 0d 09 38 |." lim|: " ...8|
|000002c0| 39 20 64 69 65 20 20 20 | 3b 0d 0d 27 20 24 65 72 |9 die |;..' $er|
|000002d0| 20 20 2d 3e 20 24 65 72 | 72 0d 0d 3a 20 24 3d 20 | -> $er|r..: $= |
|000002e0| 20 7b 20 61 64 64 72 31 | 20 6c 65 6e 31 20 61 64 | { addr1| len1 ad|
|000002f0| 64 72 32 20 6c 65 6e 32 | 20 2d 2d 20 7d 0d 09 77 |dr2 len2| -- }..w|
|00000300| 6f 72 64 30 20 20 61 64 | 64 72 31 20 20 61 64 64 |ord0 ad|dr1 add|
|00000310| 72 32 20 20 6c 65 6e 31 | 20 20 6c 65 6e 32 20 20 |r2 len1| len2 |
|00000320| 70 61 63 6b 20 20 77 20 | 31 30 0d 09 74 72 61 70 |pack w |10..trap|
|00000330| 24 20 61 39 65 64 09 09 | 09 09 09 09 09 09 5c 20 |$ a9ed..|......\ |
|00000340| 49 55 4d 61 67 53 74 72 | 69 6e 67 0d 09 69 2d 3e |IUMagStr|ing..i->|
|00000350| 6c 20 20 3b 0d 0d 0d 3a | 20 4e 4f 50 45 4e 09 2e |l ;...:| NOPEN..|
|00000360| 22 20 28 6e 6f 74 20 6f | 70 65 6e 29 22 20 20 3b |" (not o|pen)" ;|
|00000370| 0d 0d 0d 3a 63 6c 61 73 | 73 09 53 54 52 49 4e 47 |...:clas|s.STRING|
|00000380| 09 73 75 70 65 72 7b 20 | 68 61 6e 64 6c 65 20 7d |.super{ |handle }|
|00000390| 09 09 67 65 6e 65 72 61 | 6c 0d 0d 72 65 63 6f 72 |..genera|l..recor|
|000003a0| 64 0d 7b 09 76 61 72 09 | 53 49 5a 45 0d 09 76 61 |d.{.var.|SIZE..va|
|000003b0| 72 09 50 4f 53 0d 09 76 | 61 72 09 4c 49 4d 0d 09 |r.POS..v|ar.LIM..|
|000003c0| 69 6e 74 09 46 4c 41 47 | 53 0d 7d 0d 0d 3a 6d 20 |int.FLAG|S.}..:m |
|000003d0| 43 4f 50 59 54 4f 3a 09 | 5c 20 52 65 64 65 66 69 |COPYTO:.|\ Redefi|
|000003e0| 6e 69 74 69 6f 6e 20 6f | 66 20 43 4f 50 59 54 4f |nition o|f COPYTO|
|000003f0| 3a 20 77 68 69 63 68 20 | 77 69 6c 6c 20 64 69 73 |: which |will dis|
|00000400| 61 6c 6c 6f 77 20 61 20 | 73 69 7a 65 20 63 68 61 |allow a |size cha|
|00000410| 6e 67 65 0d 09 09 09 5c | 20 6f 6e 20 74 68 65 20 |nge....\| on the |
|00000420| 63 6f 70 79 2e 20 20 49 | 20 66 6f 75 6e 64 20 69 |copy. I| found i|
|00000430| 74 20 77 61 73 20 66 61 | 69 72 6c 79 20 65 61 73 |t was fa|irly eas|
|00000440| 79 20 74 6f 20 64 6f 20 | 74 68 69 73 0d 09 09 09 |y to do |this....|
|00000450| 5c 20 61 63 63 69 64 65 | 6e 74 61 6c 6c 79 2c 20 |\ accide|ntally, |
|00000460| 61 6e 64 20 67 65 74 20 | 69 6e 74 6f 20 72 61 6e |and get |into ran|
|00000470| 64 6f 6d 20 63 72 61 73 | 68 20 74 65 72 72 69 74 |dom cras|h territ|
|00000480| 6f 72 79 2e 0d 09 63 6f | 70 79 74 6f 3a 20 73 75 |ory...co|pyto: su|
|00000490| 70 65 72 0d 09 31 20 70 | 75 74 3a 20 66 6c 61 67 |per..1 p|ut: flag|
|000004a0| 73 20 20 20 3b 6d 0d 0d | 0d 3a 6d 20 4d 41 52 4b |s ;m..|.:m MARK|
|000004b0| 5f 4f 52 49 47 49 4e 41 | 4c 3a 0d 5c 20 4f 76 65 |_ORIGINA|L:.\ Ove|
|000004c0| 72 72 69 64 65 73 20 74 | 68 65 20 61 62 6f 76 65 |rrides t|he above|
|000004d0| 20 63 68 65 63 6b 2e 20 | 20 4d 61 72 6b 73 20 61 | check. | Marks a|
|000004e0| 20 63 6f 70 79 20 61 73 | 20 6f 72 69 67 69 6e 61 | copy as| origina|
|000004f0| 6c 2c 20 73 6f 20 77 65 | 20 63 61 6e 20 63 68 61 |l, so we| can cha|
|00000500| 6e 67 65 20 69 74 73 0d | 5c 20 73 69 7a 65 2e 20 |nge its.|\ size. |
|00000510| 20 57 65 20 68 6f 70 65 | 20 77 65 20 6b 6e 6f 77 | We hope| we know|
|00000520| 20 77 68 61 74 20 77 65 | 27 72 65 20 64 6f 69 6e | what we|'re doin|
|00000530| 67 2e 20 20 41 74 20 6c | 65 61 73 74 20 74 68 69 |g. At l|east thi|
|00000540| 73 20 69 73 20 61 20 6c | 6f 6e 67 20 6e 61 6d 65 |s is a l|ong name|
|00000550| 0d 5c 20 77 68 69 63 68 | 20 63 6f 75 6c 64 20 68 |.\ which| could h|
|00000560| 61 72 64 6c 79 20 67 65 | 74 20 74 79 70 65 64 20 |ardly ge|t typed |
|00000570| 62 79 20 61 63 63 69 64 | 65 6e 74 21 21 0d 0d 09 |by accid|ent!!...|
|00000580| 63 6c 65 61 72 3a 20 66 | 6c 61 67 73 20 20 20 3b |clear: f|lags ;|
|00000590| 6d 0d 0d 0d 3a 6d 20 48 | 41 4e 44 4c 45 3a 09 09 |m...:m H|ANDLE:..|
|000005a0| 5c 20 74 68 69 73 20 6d | 65 74 68 6f 64 20 72 65 |\ this m|ethod re|
|000005b0| 74 75 72 6e 73 20 74 68 | 65 20 68 61 6e 64 6c 65 |turns th|e handle|
|000005c0| 20 2d 20 72 65 70 6c 61 | 63 65 73 20 67 65 74 3a | - repla|ces get:|
|000005d0| 20 69 6e 20 73 75 70 65 | 72 0d 09 69 6e 6c 69 6e | in supe|r..inlin|
|000005e0| 65 7b 20 6f 62 6a 20 40 | 7d 20 20 3b 6d 0d 0d 3a |e{ obj @|} ;m..:|
|000005f0| 6d 20 50 4f 53 3a 09 09 | 5c 20 28 20 2d 2d 20 70 |m POS:..|\ ( -- p|
|00000600| 6f 73 20 29 0d 09 69 6e | 6c 69 6e 65 7b 20 67 65 |os )..in|line{ ge|
|00000610| 74 3a 20 70 6f 73 7d 20 | 20 3b 6d 0d 0d 3a 6d 20 |t: pos} | ;m..:m |
|00000620| 3e 50 4f 53 3a 09 5c 20 | 28 20 6e 65 77 70 6f 73 |>POS:.\ |( newpos|
|00000630| 20 2d 2d 20 29 0d 09 69 | 6e 6c 69 6e 65 7b 20 70 | -- )..i|nline{ p|
|00000640| 75 74 3a 20 70 6f 73 7d | 20 20 3b 6d 0d 0d 3a 6d |ut: pos}| ;m..:m|
|00000650| 20 4c 49 4d 3a 09 09 5c | 20 28 20 2d 2d 20 6c 69 | LIM:..\| ( -- li|
|00000660| 6d 20 29 0d 09 69 6e 6c | 69 6e 65 7b 20 67 65 74 |m )..inl|ine{ get|
|00000670| 3a 20 6c 69 6d 7d 20 20 | 3b 6d 0d 0d 3a 6d 20 3e |: lim} |;m..:m >|
|00000680| 4c 49 4d 3a 09 5c 20 28 | 20 6e 65 77 6c 69 6d 20 |LIM:.\ (| newlim |
|00000690| 2d 2d 20 29 0d 09 69 6e | 6c 69 6e 65 7b 20 70 75 |-- )..in|line{ pu|
|000006a0| 74 3a 20 6c 69 6d 7d 20 | 20 3b 6d 0d 0d 3a 6d 20 |t: lim} | ;m..:m |
|000006b0| 4c 45 4e 3a 09 09 5c 20 | 28 20 2d 2d 20 6c 65 6e |LEN:..\ |( -- len|
|000006c0| 67 74 68 20 29 0d 09 67 | 65 74 3a 20 6c 69 6d 20 |gth )..g|et: lim |
|000006d0| 20 67 65 74 3a 20 70 6f | 73 20 20 2d 20 20 20 3b | get: po|s - ;|
|000006e0| 6d 0d 0d 3a 6d 20 3e 4c | 45 4e 3a 09 5c 20 28 20 |m..:m >L|EN:.\ ( |
|000006f0| 6e 65 77 6c 65 6e 67 74 | 68 20 2d 2d 20 29 0d 09 |newlengt|h -- )..|
|00000700| 67 65 74 3a 20 70 6f 73 | 20 20 2b 20 20 70 75 74 |get: pos| + put|
|00000710| 3a 20 6c 69 6d 20 20 3b | 6d 0d 0d 0d 3a 6d 20 53 |: lim ;|m...:m S|
|00000720| 4b 49 50 3a 09 5c 20 28 | 20 6e 20 2d 2d 20 29 20 |KIP:.\ (| n -- ) |
|00000730| 20 49 6e 63 72 65 6d 65 | 6e 74 73 20 50 4f 53 20 | Increme|nts POS |
|00000740| 62 79 20 6e 2e 0d 09 69 | 6e 6c 69 6e 65 7b 20 2b |by n...i|nline{ +|
|00000750| 3a 20 70 6f 73 7d 20 20 | 3b 6d 0d 0d 3a 6d 20 4d |: pos} |;m..:m M|
|00000760| 4f 52 45 3a 09 5c 20 28 | 20 6e 20 2d 2d 20 29 20 |ORE:.\ (| n -- ) |
|00000770| 20 49 6e 63 72 65 6d 65 | 6e 74 73 20 4c 49 4d 20 | Increme|nts LIM |
|00000780| 62 79 20 6e 2e 0d 09 69 | 6e 6c 69 6e 65 7b 20 2b |by n...i|nline{ +|
|00000790| 3a 20 6c 69 6d 7d 20 20 | 3b 6d 0d 0d 3a 6d 20 53 |: lim} |;m..:m S|
|000007a0| 54 41 52 54 3a 09 5c 20 | 53 65 74 73 20 50 4f 53 |TART:.\ |Sets POS|
|000007b0| 20 74 6f 20 30 20 28 74 | 68 65 20 73 74 61 72 74 | to 0 (t|he start|
|000007c0| 20 6f 66 20 74 68 65 20 | 73 74 72 69 6e 67 29 2e | of the |string).|
|000007d0| 0d 09 69 6e 6c 69 6e 65 | 7b 20 63 6c 65 61 72 3a |..inline|{ clear:|
|000007e0| 20 70 6f 73 7d 20 20 3b | 6d 0d 0d 3a 6d 20 42 45 | pos} ;|m..:m BE|
|000007f0| 47 49 4e 3a 09 5c 20 53 | 65 74 73 20 50 4f 53 20 |GIN:.\ S|ets POS |
|00000800| 61 6e 64 20 4c 49 4d 20 | 74 6f 20 30 2c 20 72 65 |and LIM |to 0, re|
|00000810| 61 64 79 20 74 6f 20 62 | 65 67 69 6e 20 73 6f 6d |ady to b|egin som|
|00000820| 65 20 6f 70 65 72 61 74 | 69 6f 6e 2e 0d 09 63 6c |e operat|ion...cl|
|00000830| 65 61 72 3a 20 70 6f 73 | 20 20 63 6c 65 61 72 3a |ear: pos| clear:|
|00000840| 20 6c 69 6d 20 20 20 3b | 6d 0d 0d 3a 6d 20 45 4e | lim ;|m..:m EN|
|00000850| 44 3a 09 09 5c 20 53 65 | 74 73 20 50 4f 53 20 61 |D:..\ Se|ts POS a|
|00000860| 6e 64 20 4c 49 4d 20 74 | 6f 20 74 68 65 20 65 6e |nd LIM t|o the en|
|00000870| 64 20 6f 66 20 74 68 65 | 20 73 74 72 69 6e 67 2e |d of the| string.|
|00000880| 0d 09 67 65 74 3a 20 73 | 69 7a 65 20 20 64 75 70 |..get: s|ize dup|
|00000890| 20 20 70 75 74 3a 20 70 | 6f 73 20 20 70 75 74 3a | put: p|os put:|
|000008a0| 20 6c 69 6d 20 20 3b 6d | 0d 0d 3a 6d 20 4e 4f 4c | lim ;m|..:m NOL|
|000008b0| 49 4d 3a 09 5c 20 53 65 | 74 73 20 4c 49 4d 20 74 |IM:.\ Se|ts LIM t|
|000008c0| 6f 20 74 68 65 20 65 6e | 64 20 6f 66 20 74 68 65 |o the en|d of the|
|000008d0| 20 73 74 72 69 6e 67 2e | 0d 09 69 6e 6c 69 6e 65 | string.|..inline|
|000008e0| 7b 20 67 65 74 3a 20 73 | 69 7a 65 20 70 75 74 3a |{ get: s|ize put:|
|000008f0| 20 6c 69 6d 7d 20 20 3b | 6d 0d 0d 3a 6d 20 52 45 | lim} ;|m..:m RE|
|00000900| 53 45 54 3a 09 5c 20 53 | 65 74 73 20 50 4f 53 20 |SET:.\ S|ets POS |
|00000910| 74 6f 20 30 2c 20 61 6e | 64 20 4c 49 4d 20 74 6f |to 0, an|d LIM to|
|00000920| 20 74 68 65 20 65 6e 64 | 2e 0d 09 69 6e 6c 69 6e | the end|...inlin|
|00000930| 65 7b 20 63 6c 65 61 72 | 3a 20 70 6f 73 20 20 67 |e{ clear|: pos g|
|00000940| 65 74 3a 20 73 69 7a 65 | 20 20 70 75 74 3a 20 6c |et: size| put: l|
|00000950| 69 6d 7d 20 20 3b 6d 0d | 0d 3a 6d 20 53 54 45 50 |im} ;m.|.:m STEP|
|00000960| 3a 09 5c 20 53 74 65 70 | 73 20 64 6f 77 6e 20 74 |:.\ Step|s down t|
|00000970| 68 65 20 73 74 72 69 6e | 67 2c 20 62 79 20 73 65 |he strin|g, by se|
|00000980| 74 74 69 6e 67 20 50 4f | 53 20 74 6f 20 4c 49 4d |tting PO|S to LIM|
|00000990| 20 61 6e 64 0d 09 09 09 | 5c 20 74 68 65 6e 20 73 | and....|\ then s|
|000009a0| 65 74 74 69 6e 67 20 4c | 49 4d 20 74 6f 20 74 68 |etting L|IM to th|
|000009b0| 65 20 65 6e 64 2e 0d 09 | 67 65 74 3a 20 6c 69 6d |e end...|get: lim|
|000009c0| 20 20 70 75 74 3a 20 70 | 6f 73 20 20 67 65 74 3a | put: p|os get:|
|000009d0| 20 73 69 7a 65 20 20 70 | 75 74 3a 20 6c 69 6d 20 | size p|ut: lim |
|000009e0| 20 3b 6d 0d 0d 3a 6d 20 | 3c 53 54 45 50 3a 09 5c | ;m..:m |<STEP:.\|
|000009f0| 20 42 61 63 6b 77 61 72 | 64 20 73 74 65 70 2e 20 | Backwar|d step. |
|00000a00| 20 53 65 74 73 20 4c 49 | 4d 20 74 6f 20 50 4f 53 | Sets LI|M to POS|
|00000a10| 2c 20 74 68 65 6e 20 50 | 4f 53 20 74 6f 20 30 2e |, then P|OS to 0.|
|00000a20| 0d 09 67 65 74 3a 20 70 | 6f 73 20 20 70 75 74 3a |..get: p|os put:|
|00000a30| 20 6c 69 6d 20 20 63 6c | 65 61 72 3a 20 70 6f 73 | lim cl|ear: pos|
|00000a40| 20 20 3b 6d 0d 0d 0d 3a | 6d 20 4e 45 57 3a 0d 09 | ;m...:|m NEW:..|
|00000a50| 30 20 6e 65 77 3a 20 73 | 75 70 65 72 0d 09 63 6c |0 new: s|uper..cl|
|00000a60| 65 61 72 3a 20 73 69 7a | 65 20 20 63 6c 65 61 72 |ear: siz|e clear|
|00000a70| 3a 20 70 6f 73 20 20 63 | 6c 65 61 72 3a 20 6c 69 |: pos c|lear: li|
|00000a80| 6d 20 20 63 6c 65 61 72 | 3a 20 66 6c 61 67 73 20 |m clear|: flags |
|00000a90| 20 3b 6d 0d 09 0d 3a 6d | 20 3f 4e 45 57 3a 0d 09 | ;m...:m| ?NEW:..|
|00000aa0| 5e 62 61 73 65 20 40 20 | 20 6e 69 6c 48 20 3c 3e |^base @ | nilH <>|
|00000ab0| 20 3f 45 58 49 54 20 20 | 6e 65 77 3a 20 73 65 6c | ?EXIT |new: sel|
|00000ac0| 66 20 20 3b 6d 0d 0d 3a | 6d 20 53 49 5a 45 3a 09 |f ;m..:|m SIZE:.|
|00000ad0| 5c 20 28 20 2d 2d 20 73 | 69 7a 65 20 29 0d 09 69 |\ ( -- s|ize )..i|
|00000ae0| 6e 6c 69 6e 65 7b 20 67 | 65 74 3a 20 73 69 7a 65 |nline{ g|et: size|
|00000af0| 7d 20 20 3b 6d 0d 0d 3a | 6d 20 53 45 54 53 49 5a |} ;m..:|m SETSIZ|
|00000b00| 45 3a 09 5c 20 28 20 6e | 65 77 73 69 7a 65 20 2d |E:.\ ( n|ewsize -|
|00000b10| 2d 20 29 0d 09 67 65 74 | 3a 20 66 6c 61 67 73 20 |- )..get|: flags |
|00000b20| 20 3f 65 72 72 6f 72 20 | 39 34 09 09 5c 20 43 61 | ?error |94..\ Ca|
|00000b30| 6e 27 74 20 64 6f 20 74 | 68 61 74 20 6f 6e 20 61 |n't do t|hat on a|
|00000b40| 20 73 74 72 69 6e 67 20 | 63 6f 70 79 0d 09 3f 6e | string |copy..?n|
|00000b50| 65 77 3a 20 73 65 6c 66 | 0d 09 64 75 70 20 20 73 |ew: self|..dup s|
|00000b60| 65 74 73 69 7a 65 3a 20 | 73 75 70 65 72 20 20 70 |etsize: |super p|
|00000b70| 75 74 3a 20 73 69 7a 65 | 20 20 72 65 73 65 74 3a |ut: size| reset:|
|00000b80| 20 73 65 6c 66 20 20 3b | 6d 0d 0d 3a 6d 20 43 4c | self ;|m..:m CL|
|00000b90| 45 41 52 3a 0d 09 3f 6e | 65 77 3a 20 73 65 6c 66 |EAR:..?n|ew: self|
|00000ba0| 20 20 30 20 73 65 74 73 | 69 7a 65 3a 20 73 65 6c | 0 sets|ize: sel|
|00000bb0| 66 20 20 3b 6d 0d 0d 3a | 6d 20 47 45 54 3a 09 09 |f ;m..:|m GET:..|
|00000bc0| 5c 20 28 20 2d 2d 20 61 | 64 64 72 20 6c 65 6e 20 |\ ( -- a|ddr len |
|00000bd0| 29 2e 20 20 47 65 74 73 | 20 74 68 65 20 61 63 74 |). Gets| the act|
|00000be0| 69 76 65 20 70 61 72 74 | 20 6f 66 20 74 68 65 20 |ive part| of the |
|00000bf0| 73 74 72 69 6e 67 2e 0d | 09 24 63 68 6b 0d 09 70 |string..|.$chk..p|
|00000c00| 74 72 3a 20 73 65 6c 66 | 20 20 67 65 74 3a 20 70 |tr: self| get: p|
|00000c10| 6f 73 20 20 2b 20 20 67 | 65 74 3a 20 6c 69 6d 20 |os + g|et: lim |
|00000c20| 20 67 65 74 3a 20 70 6f | 73 20 20 2d 20 20 3b 6d | get: po|s - ;m|
|00000c30| 0d 0d 3a 6d 20 41 4c 4c | 3a 09 09 5c 20 28 20 2d |..:m ALL|:..\ ( -|
|00000c40| 2d 20 61 64 64 72 20 6c | 65 6e 20 29 09 47 65 74 |- addr l|en ).Get|
|00000c50| 73 20 61 6c 6c 20 74 68 | 65 20 73 74 72 69 6e 67 |s all th|e string|
|00000c60| 2c 20 69 67 6e 6f 72 69 | 6e 67 20 50 4f 53 20 61 |, ignori|ng POS a|
|00000c70| 6e 64 20 4c 49 4d 2e 0d | 09 70 74 72 3a 20 73 65 |nd LIM..|.ptr: se|
|00000c80| 6c 66 20 20 73 69 7a 65 | 3a 20 73 65 6c 66 20 20 |lf size|: self |
|00000c90| 3b 6d 0d 0d 3a 6d 20 31 | 53 54 3a 09 09 5c 20 28 |;m..:m 1|ST:..\ (|
|00000ca0| 20 2d 2d 20 63 20 29 20 | 20 52 65 74 75 72 6e 73 | -- c ) | Returns|
|00000cb0| 20 74 68 65 20 63 68 61 | 72 20 61 74 20 50 4f 53 | the cha|r at POS|
|00000cc0| 2e 0d 09 70 74 72 3a 20 | 73 65 6c 66 20 20 67 65 |...ptr: |self ge|
|00000cd0| 74 3a 20 70 6f 73 20 20 | 2b 20 20 63 40 20 20 3b |t: pos |+ c@ ;|
|00000ce0| 6d 0d 0d 3a 6d 20 5e 31 | 53 54 3a 09 5c 20 28 20 |m..:m ^1|ST:.\ ( |
|00000cf0| 2d 2d 20 61 64 64 72 20 | 29 20 20 52 65 74 75 72 |-- addr |) Retur|
|00000d00| 6e 73 20 74 68 65 20 61 | 64 64 72 20 6f 66 20 74 |ns the a|ddr of t|
|00000d10| 68 65 20 63 68 61 72 20 | 61 74 20 50 4f 53 2e 0d |he char |at POS..|
|00000d20| 09 70 74 72 3a 20 73 65 | 6c 66 20 20 67 65 74 3a |.ptr: se|lf get:|
|00000d30| 20 70 6f 73 20 20 2b 20 | 20 3b 6d 0d 0d 70 72 69 | pos + | ;m..pri|
|00000d40| 76 61 74 65 0d 0d 3a 6d | 20 4d 55 4e 47 45 52 3a |vate..:m| MUNGER:|
|00000d50| 20 20 7b 20 61 64 64 72 | 31 20 6c 65 6e 31 20 61 | { addr|1 len1 a|
|00000d60| 64 64 72 32 20 6c 65 6e | 32 20 2d 2d 20 6f 66 66 |ddr2 len|2 -- off|
|00000d70| 73 20 7d 0d 09 09 5c 20 | 49 6e 74 65 72 66 61 63 |s }...\ |Interfac|
|00000d80| 65 20 74 6f 20 74 68 65 | 20 54 6f 6f 6c 62 6f 78 |e to the| Toolbox|
|00000d90| 20 4d 75 6e 67 65 72 20 | 75 74 69 6c 69 74 79 0d | Munger |utility.|
|00000da0| 09 24 63 68 6b 0d 09 67 | 65 74 3a 20 66 6c 61 67 |.$chk..g|et: flag|
|00000db0| 73 20 20 3f 65 72 72 6f | 72 20 39 34 09 09 5c 20 |s ?erro|r 94..\ |
|00000dc0| 43 61 6e 27 74 20 64 6f | 20 74 68 61 74 20 6f 6e |Can't do| that on|
|00000dd0| 20 61 20 73 74 72 69 6e | 67 20 63 6f 70 79 0d 20 | a strin|g copy. |
|00000de0| 20 09 20 30 09 09 09 09 | 09 09 09 5c 20 46 6f 72 | . 0....|...\ For|
|00000df0| 20 72 65 74 75 72 6e 65 | 64 20 72 65 73 75 6c 74 | returne|d result|
|00000e00| 0d 09 5e 62 61 73 65 20 | 40 20 20 67 65 74 3a 20 |..^base |@ get: |
|00000e10| 70 6f 73 0d 09 61 64 64 | 72 31 20 6c 65 6e 31 20 |pos..add|r1 len1 |
|00000e20| 20 61 64 64 72 32 20 6c | 65 6e 32 0d 09 74 72 61 | addr2 l|en2..tra|
|00000e30| 70 24 20 61 39 65 30 09 | 09 09 09 09 5c 20 63 61 |p$ a9e0.|....\ ca|
|00000e40| 6c 6c 20 4d 75 6e 67 65 | 72 0d 09 73 69 7a 65 3a |ll Munge|r..size:|
|00000e50| 20 73 75 70 65 72 20 20 | 70 75 74 3a 20 73 69 7a | super |put: siz|
|00000e60| 65 20 20 3b 6d 0d 0d 70 | 75 62 6c 69 63 0d 0d 3a |e ;m..p|ublic..:|
|00000e70| 6d 20 55 43 3a 09 09 5c | 20 28 20 2d 2d 20 61 64 |m UC:..\| ( -- ad|
|00000e80| 64 72 20 6c 65 6e 20 29 | 20 20 43 6f 6e 76 65 72 |dr len )| Conver|
|00000e90| 74 73 20 73 74 72 69 6e | 67 20 74 6f 20 75 70 70 |ts strin|g to upp|
|00000ea0| 65 72 20 63 61 73 65 20 | 61 6e 64 20 67 65 74 73 |er case |and gets|
|00000eb0| 20 69 74 2e 0d 09 67 65 | 74 3a 20 73 65 6c 66 20 | it...ge|t: self |
|00000ec0| 20 32 64 75 70 20 20 75 | 70 70 65 72 20 20 3b 6d | 2dup u|pper ;m|
|00000ed0| 0d 0d 0d 3a 6d 20 50 55 | 54 3a 20 7b 20 61 64 64 |...:m PU|T: { add|
|00000ee0| 72 20 6c 65 6e 20 2d 2d | 20 7d 0d 09 09 5c 20 52 |r len --| }...\ R|
|00000ef0| 65 70 6c 61 63 65 73 20 | 65 6e 74 69 72 65 20 73 |eplaces |entire s|
|00000f00| 74 72 69 6e 67 20 77 69 | 74 68 20 72 65 70 6c 61 |tring wi|th repla|
|00000f10| 63 65 6d 65 6e 74 20 73 | 74 72 69 6e 67 2e 20 20 |cement s|tring. |
|00000f20| 44 6f 65 73 20 4e 45 57 | 3a 0d 09 09 5c 20 69 66 |Does NEW|:...\ if|
|00000f30| 20 6e 6f 74 20 61 6c 72 | 65 61 64 79 20 64 6f 6e | not alr|eady don|
|00000f40| 65 2e 0d 09 3f 6e 65 77 | 3a 20 73 65 6c 66 20 20 |e...?new|: self |
|00000f50| 63 6c 65 61 72 3a 20 70 | 6f 73 0d 09 30 20 2d 31 |clear: p|os..0 -1|
|00000f60| 20 20 61 64 64 72 20 6c | 65 6e 20 20 6d 75 6e 67 | addr l|en mung|
|00000f70| 65 72 3a 20 73 65 6c 66 | 20 20 70 75 74 3a 20 6c |er: self| put: l|
|00000f80| 69 6d 20 20 3b 6d 0d 0d | 3a 6d 20 2d 3e 3a 20 20 |im ;m..|:m ->: |
|00000f90| 7b 20 73 74 72 20 5c 20 | 73 74 61 74 65 20 2d 2d |{ str \ |state --|
|00000fa0| 20 7d 0d 09 09 5c 20 52 | 65 70 6c 61 63 65 73 20 | }...\ R|eplaces |
|00000fb0| 73 65 6c 66 20 77 69 74 | 68 20 74 68 65 20 61 63 |self wit|h the ac|
|00000fc0| 74 69 76 65 20 70 61 72 | 74 20 6f 66 20 73 74 72 |tive par|t of str|
|00000fd0| 69 6e 67 20 73 74 72 2e | 20 20 57 65 20 61 73 73 |ing str.| We ass|
|00000fe0| 75 6d 65 0d 09 09 5c 20 | 74 68 65 20 74 79 70 65 |ume...\ |the type|
|00000ff0| 2c 20 61 6e 64 20 65 61 | 72 6c 79 20 62 69 6e 64 |, and ea|rly bind|
|00001000| 2e 20 20 41 73 20 74 68 | 65 20 72 65 70 6c 61 63 |. As th|e replac|
|00001010| 65 6d 65 6e 74 20 6d 61 | 79 20 63 61 75 73 65 20 |ement ma|y cause |
|00001020| 74 68 65 0d 09 09 5c 20 | 4d 65 6d 20 4d 61 6e 61 |the...\ |Mem Mana|
|00001030| 67 65 72 20 74 6f 20 6d | 6f 76 65 20 74 68 69 6e |ger to m|ove thin|
|00001040| 67 73 2c 20 77 65 20 6c | 6f 63 6b 20 73 74 72 20 |gs, we l|ock str |
|00001050| 66 6f 72 20 74 68 65 20 | 64 75 72 61 74 69 6f 6e |for the |duration|
|00001060| 2e 0d 0d 09 73 74 72 20 | 67 65 74 53 74 61 74 65 |....str |getState|
|00001070| 3a 20 73 74 72 69 6e 67 | 20 20 2d 3e 20 73 74 61 |: string| -> sta|
|00001080| 74 65 20 20 20 73 74 72 | 20 6c 6f 63 6b 3a 20 73 |te str| lock: s|
|00001090| 74 72 69 6e 67 0d 09 73 | 74 72 20 67 65 74 3a 20 |tring..s|tr get: |
|000010a0| 73 74 72 69 6e 67 20 20 | 20 70 75 74 3a 20 73 65 |string | put: se|
|000010b0| 6c 66 0d 09 73 74 61 74 | 65 20 20 20 73 74 72 20 |lf..stat|e str |
|000010c0| 73 65 74 53 74 61 74 65 | 3a 20 73 74 72 69 6e 67 |setState|: string|
|000010d0| 20 20 20 3b 6d 0d 0d 09 | 0d 3a 6d 20 49 4e 53 45 | ;m...|.:m INSE|
|000010e0| 52 54 3a 20 20 7b 20 61 | 64 64 72 20 6c 65 6e 20 |RT: { a|ddr len |
|000010f0| 2d 2d 20 7d 0d 09 3f 6e | 65 77 3a 20 73 65 6c 66 |-- }..?n|ew: self|
|00001100| 0d 09 61 64 64 72 20 30 | 20 61 64 64 72 20 6c 65 |..addr 0| addr le|
|00001110| 6e 20 20 6d 75 6e 67 65 | 72 3a 20 73 65 6c 66 20 |n munge|r: self |
|00001120| 20 70 75 74 3a 20 70 6f | 73 0d 09 6c 65 6e 20 2b | put: po|s..len +|
|00001130| 3a 20 6c 69 6d 20 20 3b | 6d 0d 0d 0d 3a 6d 20 24 |: lim ;|m...:m $|
|00001140| 49 4e 53 45 52 54 3a 20 | 20 7b 20 73 74 72 20 5c |INSERT: | { str \|
|00001150| 20 73 74 61 74 65 20 2d | 2d 20 7d 0d 09 09 5c 20 | state -|- }...\ |
|00001160| 49 6e 73 65 72 74 73 20 | 74 68 65 20 61 63 74 69 |Inserts |the acti|
|00001170| 76 65 20 74 65 78 74 20 | 66 72 6f 6d 20 74 68 65 |ve text |from the|
|00001180| 20 67 69 76 65 6e 20 72 | 65 6c 6f 63 61 74 61 62 | given r|elocatab|
|00001190| 6c 65 0d 09 09 5c 20 73 | 74 72 69 6e 67 2c 20 75 |le...\ s|tring, u|
|000011a0| 73 69 6e 67 20 65 61 72 | 6c 79 20 62 69 6e 64 69 |sing ear|ly bindi|
|000011b0| 6e 67 2e 20 20 41 73 20 | 74 68 65 20 6d 65 6d 6f |ng. As |the memo|
|000011c0| 72 79 20 6d 61 6e 61 67 | 65 72 20 63 6f 75 6c 64 |ry manag|er could|
|000011d0| 20 0d 09 09 5c 20 6d 6f | 76 65 20 74 68 65 20 73 | ...\ mo|ve the s|
|000011e0| 6f 75 72 63 65 20 73 74 | 72 69 6e 67 20 74 6f 20 |ource st|ring to |
|000011f0| 6d 61 6b 65 20 72 6f 6f | 6d 20 66 6f 72 20 74 68 |make roo|m for th|
|00001200| 65 20 69 6e 63 72 65 61 | 73 65 20 69 6e 20 0d 09 |e increa|se in ..|
|00001210| 09 5c 20 6c 65 6e 67 74 | 68 20 6f 66 20 53 45 4c |.\ lengt|h of SEL|
|00001220| 46 2c 20 77 65 20 6c 6f | 63 6b 20 74 68 65 20 73 |F, we lo|ck the s|
|00001230| 6f 75 72 63 65 20 73 74 | 72 69 6e 67 20 66 6f 72 |ource st|ring for|
|00001240| 20 74 68 65 0d 09 09 5c | 20 6f 70 65 72 61 74 69 | the...\| operati|
|00001250| 6f 6e 2c 20 74 68 65 6e | 20 72 65 73 74 6f 72 65 |on, then| restore|
|00001260| 20 69 74 73 20 70 72 65 | 76 69 6f 75 73 20 73 74 | its pre|vious st|
|00001270| 61 74 65 2e 0d 0d 09 73 | 74 72 20 67 65 74 53 74 |ate....s|tr getSt|
|00001280| 61 74 65 3a 20 73 74 72 | 69 6e 67 20 20 2d 3e 20 |ate: str|ing -> |
|00001290| 73 74 61 74 65 20 20 73 | 74 72 20 6c 6f 63 6b 3a |state s|tr lock:|
|000012a0| 20 73 74 72 69 6e 67 0d | 09 73 74 72 20 67 65 74 | string.|.str get|
|000012b0| 3a 20 73 74 72 69 6e 67 | 20 20 69 6e 73 65 72 74 |: string| insert|
|000012c0| 3a 20 73 65 6c 66 0d 09 | 73 74 61 74 65 20 20 73 |: self..|state s|
|000012d0| 74 72 20 73 65 74 53 74 | 61 74 65 3a 20 73 74 72 |tr setSt|ate: str|
|000012e0| 69 6e 67 20 20 3b 6d 0d | 0d 0d 3a 6d 20 41 44 44 |ing ;m.|..:m ADD|
|000012f0| 3a 20 7b 20 61 64 64 72 | 20 6c 65 6e 20 2d 2d 20 |: { addr| len -- |
|00001300| 7d 0d 09 65 6e 64 3a 20 | 73 65 6c 66 0d 09 61 64 |}..end: |self..ad|
|00001310| 64 72 20 6c 65 6e 20 20 | 69 6e 73 65 72 74 3a 20 |dr len |insert: |
|00001320| 73 65 6c 66 20 20 3b 6d | 0d 0d 0d 3a 6d 20 24 41 |self ;m|...:m $A|
|00001330| 44 44 3a 20 20 7b 20 73 | 74 72 20 5c 20 73 74 61 |DD: { s|tr \ sta|
|00001340| 74 65 20 2d 2d 20 7d 0d | 09 73 74 72 20 67 65 74 |te -- }.|.str get|
|00001350| 53 74 61 74 65 3a 20 73 | 74 72 69 6e 67 20 20 2d |State: s|tring -|
|00001360| 3e 20 73 74 61 74 65 20 | 20 73 74 72 20 6c 6f 63 |> state | str loc|
|00001370| 6b 3a 20 73 74 72 69 6e | 67 0d 09 73 74 72 20 67 |k: strin|g..str g|
|00001380| 65 74 3a 20 73 74 72 69 | 6e 67 20 20 61 64 64 3a |et: stri|ng add:|
|00001390| 20 73 65 6c 66 0d 09 73 | 74 61 74 65 20 20 73 74 | self..s|tate st|
|000013a0| 72 20 73 65 74 53 74 61 | 74 65 3a 20 73 74 72 69 |r setSta|te: stri|
|000013b0| 6e 67 20 20 3b 6d 0d 0d | 0d 3a 6d 20 2b 3a 09 09 |ng ;m..|.:m +:..|
|000013c0| 5c 20 28 20 63 68 61 72 | 20 2d 2d 20 29 20 20 41 |\ ( char| -- ) A|
|000013d0| 70 70 65 6e 64 73 20 61 | 20 63 68 61 72 20 74 6f |ppends a| char to|
|000013e0| 20 65 6e 64 20 6f 66 20 | 73 74 72 69 6e 67 0d 09 | end of |string..|
|000013f0| 70 61 64 20 63 21 20 20 | 70 61 64 20 31 20 61 64 |pad c! |pad 1 ad|
|00001400| 64 3a 20 73 65 6c 66 20 | 20 3b 6d 0d 0d 0d 3a 6d |d: self | ;m...:m|
|00001410| 20 50 52 49 4e 54 3a 0d | 09 6e 69 6c 3f 3a 20 73 | PRINT:.|.nil?: s|
|00001420| 65 6c 66 0d 09 69 66 20 | 20 20 4e 6f 70 65 6e 20 |elf..if | Nopen |
|00001430| 20 65 6c 73 65 20 20 20 | 67 65 74 3a 20 73 65 6c | else |get: sel|
|00001440| 66 20 20 74 79 70 65 20 | 20 20 74 68 65 6e 20 20 |f type | then |
|00001450| 20 3b 6d 0d 0d 5c 20 3a | 6d 20 20 20 3d 3a 20 7b | ;m..\ :|m =: {|
|00001460| 20 74 68 65 6f 62 6a 20 | 2d 2d 20 7d 0d 5c 09 09 | theobj |-- }.\..|
|00001470| 5c 20 41 73 73 69 67 6e | 73 20 74 68 69 73 20 73 |\ Assign|s this s|
|00001480| 74 72 69 6e 67 20 74 6f | 20 61 6e 79 20 6f 62 6a |tring to| any obj|
|00001490| 65 63 74 20 74 68 61 74 | 20 61 63 63 65 70 74 73 |ect that| accepts|
|000014a0| 20 28 20 61 64 64 72 20 | 6c 65 6e 20 29 0d 5c 09 | ( addr |len ).\.|
|000014b0| 67 65 74 3a 20 73 65 6c | 66 20 20 70 75 74 3a 20 |get: sel|f put: |
|000014c0| 74 68 65 6f 62 6a 20 20 | 3b 6d 0d 0d 3a 6d 20 46 |theobj |;m..:m F|
|000014d0| 49 4c 4c 3a 09 5c 20 28 | 20 63 20 2d 2d 20 29 0d |ILL:.\ (| c -- ).|
|000014e0| 09 67 65 74 3a 20 73 65 | 6c 66 20 20 72 6f 74 20 |.get: se|lf rot |
|000014f0| 20 66 69 6c 6c 20 20 3b | 6d 0d 0d 0d 5c 20 53 45 | fill ;|m...\ SE|
|00001500| 41 52 43 48 3a 20 61 6e | 64 20 43 48 53 45 41 52 |ARCH: an|d CHSEAR|
|00001510| 43 48 3a 20 61 72 65 20 | 73 6f 6d 65 77 68 61 74 |CH: are |somewhat|
|00001520| 20 69 6e 74 65 72 69 6d | 2e 20 20 43 6c 61 73 73 | interim|. Class|
|00001530| 20 53 74 72 69 6e 67 2b | 20 70 72 6f 76 69 64 65 | String+| provide|
|00001540| 73 20 6d 6f 72 65 0d 5c | 20 65 66 66 69 63 69 65 |s more.\| efficie|
|00001550| 6e 74 20 76 65 72 73 69 | 6f 6e 73 20 77 68 69 63 |nt versi|ons whic|
|00001560| 68 20 61 6c 73 6f 20 69 | 6e 63 6c 75 64 65 20 63 |h also i|nclude c|
|00001570| 61 73 65 20 68 61 6e 64 | 6c 69 6e 67 2e 20 20 42 |ase hand|ling. B|
|00001580| 75 74 20 74 68 65 73 65 | 20 76 65 72 73 69 6f 6e |ut these| version|
|00001590| 73 0d 5c 20 61 72 65 20 | 73 68 6f 72 74 2c 20 61 |s.\ are |short, a|
|000015a0| 6e 64 20 6d 61 79 20 62 | 65 20 61 64 65 71 75 61 |nd may b|e adequa|
|000015b0| 74 65 20 66 6f 72 20 6d | 61 6e 79 20 6e 65 65 64 |te for m|any need|
|000015c0| 73 2e 0d 0d 3a 6d 20 53 | 45 41 52 43 48 3a 09 5c |s...:m S|EARCH:.\|
|000015d0| 20 28 20 61 64 64 72 20 | 6c 65 6e 20 2d 2d 20 62 | ( addr |len -- b|
|000015e0| 20 29 0d 09 30 20 30 20 | 20 6d 75 6e 67 65 72 3a | )..0 0 | munger:|
|000015f0| 20 73 65 6c 66 0d 09 64 | 75 70 20 30 3c 20 69 66 | self..d|up 0< if|
|00001600| 20 20 64 72 6f 70 20 20 | 66 61 6c 73 65 20 20 65 | drop |false e|
|00001610| 6c 73 65 20 20 70 75 74 | 3a 20 6c 69 6d 20 20 74 |lse put|: lim t|
|00001620| 72 75 65 20 20 74 68 65 | 6e 20 20 3b 6d 0d 0d 3a |rue the|n ;m..:|
|00001630| 6d 20 43 48 53 45 41 52 | 43 48 3a 09 5c 20 28 20 |m CHSEAR|CH:.\ ( |
|00001640| 63 20 2d 2d 20 62 20 29 | 0d 09 70 61 64 20 63 21 |c -- b )|..pad c!|
|00001650| 20 20 70 61 64 20 31 20 | 20 73 65 61 72 63 68 3a | pad 1 | search:|
|00001660| 20 73 65 6c 66 20 20 3b | 6d 0d 0d 0d 0d 5c 09 09 | self ;|m....\..|
|00001670| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 20 53 74 72 65 |========|=== Stre|
|00001680| 61 6d 20 6f 70 65 72 61 | 74 69 6f 6e 73 20 3d 3d |am opera|tions ==|
|00001690| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 0d 0d 28 2a 09 54 68 |========|=..(*.Th|
|000016a0| 65 20 73 74 72 65 61 6d | 20 6d 65 74 68 6f 64 73 |e stream| methods|
|000016b0| 20 52 45 41 44 3a 20 61 | 6e 64 20 57 52 49 54 45 | READ: a|nd WRITE|
|000016c0| 3a 20 61 72 65 20 6d 65 | 61 6e 74 20 74 6f 20 6c |: are me|ant to l|
|000016d0| 6f 6f 6b 20 74 68 65 20 | 73 61 6d 65 0d 09 66 6f |ook the |same..fo|
|000016e0| 72 20 62 6f 74 68 20 73 | 74 72 69 6e 67 73 20 61 |r both s|trings a|
|000016f0| 6e 64 20 66 69 6c 65 73 | 20 28 61 6e 64 20 66 6f |nd files| (and fo|
|00001700| 72 20 61 6e 79 74 68 69 | 6e 67 20 65 6c 73 65 20 |r anythi|ng else |
|00001710| 77 65 20 74 68 69 6e 6b | 0d 09 6f 66 20 6c 61 74 |we think|..of lat|
|00001720| 65 72 29 2e 20 20 42 79 | 20 6c 61 74 65 20 62 69 |er). By| late bi|
|00001730| 6e 64 69 6e 67 20 74 6f | 20 61 6e 20 6f 62 6a 65 |nding to| an obje|
|00001740| 63 74 20 74 68 61 74 20 | 73 75 70 70 6f 72 74 73 |ct that |supports|
|00001750| 20 74 68 65 73 65 2c 0d | 09 77 65 20 64 6f 6e 27 | these,.|.we don'|
|00001760| 74 20 68 61 76 65 20 74 | 6f 20 6b 6e 6f 77 20 6f |t have t|o know o|
|00001770| 72 20 63 61 72 65 20 65 | 78 61 63 74 6c 79 20 77 |r care e|xactly w|
|00001780| 68 61 74 20 69 74 20 69 | 73 2e 20 20 49 74 20 67 |hat it i|s. It g|
|00001790| 69 76 65 73 0d 09 75 73 | 20 62 79 74 65 73 20 6f |ives..us| bytes o|
|000017a0| 72 20 61 63 63 65 70 74 | 73 20 62 79 74 65 73 2c |r accept|s bytes,|
|000017b0| 20 61 6e 64 20 74 65 6c | 6c 73 20 75 73 20 77 68 | and tel|ls us wh|
|000017c0| 65 74 68 65 72 20 69 74 | 20 77 61 73 0d 09 73 75 |ether it| was..su|
|000017d0| 63 63 65 73 73 66 75 6c | 2c 20 61 6e 64 20 74 68 |ccessful|, and th|
|000017e0| 61 74 27 73 20 61 6c 6c | 20 77 65 20 68 61 76 65 |at's all| we have|
|000017f0| 20 74 6f 20 77 6f 72 72 | 79 20 61 62 6f 75 74 2e | to worr|y about.|
|00001800| 20 20 54 68 69 73 20 69 | 73 0d 09 72 65 61 6c 6c | This i|s..reall|
|00001810| 79 20 61 20 22 73 74 72 | 65 61 6d 20 69 6e 74 65 |y a "str|eam inte|
|00001820| 72 66 61 63 65 22 20 69 | 64 65 61 20 2d 2d 20 61 |rface" i|dea -- a|
|00001830| 6c 74 68 6f 75 67 68 20 | 77 65 20 64 6f 6e 27 74 |lthough |we don't|
|00001840| 20 68 61 76 65 0d 09 61 | 20 66 6f 72 6d 61 6c 20 | have..a| formal |
|00001850| 69 6e 74 65 72 66 61 63 | 65 20 6d 65 63 68 61 6e |interfac|e mechan|
|00001860| 69 73 6d 20 69 6e 20 4d | 6f 70 73 2c 20 77 65 20 |ism in M|ops, we |
|00001870| 63 61 6e 20 75 73 65 20 | 74 68 65 20 69 64 65 61 |can use |the idea|
|00001880| 0d 09 77 68 65 6e 65 76 | 65 72 20 69 74 27 73 20 |..whenev|er it's |
|00001890| 75 73 65 66 75 6c 2e 0d | 09 0d 09 46 6f 72 20 52 |useful..|...For R|
|000018a0| 45 41 44 3a 2c 20 77 65 | 20 6f 6e 6c 79 20 75 73 |EAD:, we| only us|
|000018b0| 65 20 74 68 65 20 61 63 | 74 69 76 65 20 70 61 72 |e the ac|tive par|
|000018c0| 74 20 6f 66 20 74 68 65 | 20 73 74 72 69 6e 67 2e |t of the| string.|
|000018d0| 20 20 57 65 0d 09 75 70 | 64 61 74 65 20 50 4f 53 | We..up|date POS|
|000018e0| 20 62 79 20 74 68 65 20 | 6e 75 6d 62 65 72 20 6f | by the |number o|
|000018f0| 66 20 62 79 74 65 73 20 | 74 72 61 6e 73 66 65 72 |f bytes |transfer|
|00001900| 72 65 64 2e 20 20 49 66 | 20 77 65 20 0d 09 74 72 |red. If| we ..tr|
|00001910| 61 6e 73 66 65 72 20 74 | 68 65 20 6e 75 6d 62 65 |ansfer t|he numbe|
|00001920| 72 20 61 73 6b 65 64 20 | 66 6f 72 2c 20 77 65 20 |r asked |for, we |
|00001930| 72 65 74 75 72 6e 20 61 | 20 22 6e 6f 20 65 72 72 |return a| "no err|
|00001940| 6f 72 22 0d 09 63 6f 64 | 65 20 6f 66 20 7a 65 72 |or"..cod|e of zer|
|00001950| 6f 2c 20 6f 74 68 65 72 | 77 69 73 65 20 2d 31 2e |o, other|wise -1.|
|00001960| 20 20 28 57 65 20 64 6f | 6e 27 74 20 75 73 65 20 | (We do|n't use |
|00001970| 74 72 75 65 20 61 6e 64 | 20 66 61 6c 73 65 20 0d |true and| false .|
|00001980| 09 73 6f 20 61 73 20 74 | 6f 20 62 65 68 61 76 65 |.so as t|o behave|
|00001990| 20 74 68 65 20 73 61 6d | 65 20 77 61 79 20 61 73 | the sam|e way as|
|000019a0| 20 66 69 6c 65 73 29 2e | 20 20 57 52 49 54 45 3a | files).| WRITE:|
|000019b0| 20 69 73 0d 09 62 61 73 | 69 63 61 6c 6c 79 20 74 | is..bas|ically t|
|000019c0| 68 65 20 73 61 6d 65 20 | 61 73 20 41 44 44 3a 2e |he same |as ADD:.|
|000019d0| 20 20 54 68 65 72 65 27 | 73 20 6e 6f 20 77 61 79 | There'|s no way|
|000019e0| 20 74 68 69 73 20 63 61 | 6e 20 66 61 69 6c 0d 09 | this ca|n fail..|
|000019f0| 75 6e 6c 65 73 73 20 77 | 65 20 72 75 6e 20 6f 75 |unless w|e run ou|
|00001a00| 74 20 6f 66 20 6d 65 6d | 6f 72 79 2c 20 73 6f 20 |t of mem|ory, so |
|00001a10| 77 65 20 61 6c 77 61 79 | 73 20 72 65 74 75 72 6e |we alway|s return|
|00001a20| 20 7a 65 72 6f 2e 0d 2a | 29 0d 0d 3a 6d 20 52 45 | zero..*|)..:m RE|
|00001a30| 41 44 3a 20 20 7b 20 61 | 64 64 72 20 6c 65 6e 20 |AD: { a|ddr len |
|00001a40| 5c 20 23 74 72 61 6e 73 | 66 65 72 72 65 64 20 2d |\ #trans|ferred -|
|00001a50| 2d 20 63 6f 64 65 20 7d | 0d 09 67 65 74 3a 20 73 |- code }|..get: s|
|00001a60| 65 6c 66 20 20 6c 65 6e | 20 6d 69 6e 20 20 2d 3e |elf len| min ->|
|00001a70| 20 23 74 72 61 6e 73 66 | 65 72 72 65 64 0d 09 61 | #transf|erred..a|
|00001a80| 64 64 72 20 20 23 74 72 | 61 6e 73 66 65 72 72 65 |ddr #tr|ansferre|
|00001a90| 64 20 20 6d 6f 76 65 0d | 09 23 74 72 61 6e 73 66 |d move.|.#transf|
|00001aa0| 65 72 72 65 64 20 20 73 | 6b 69 70 3a 20 73 65 6c |erred s|kip: sel|
|00001ab0| 66 0d 09 23 74 72 61 6e | 73 66 65 72 72 65 64 20 |f..#tran|sferred |
|00001ac0| 20 6c 65 6e 20 20 3c 3e | 0d 3b 6d 0d 0d 3a 6d 20 | len <>|.;m..:m |
|00001ad0| 57 52 49 54 45 3a 20 20 | 28 20 61 64 64 72 20 6c |WRITE: |( addr l|
|00001ae0| 65 6e 20 2d 2d 20 63 6f | 64 65 20 29 0d 09 61 64 |en -- co|de )..ad|
|00001af0| 64 3a 20 73 65 6c 66 20 | 20 30 20 20 3b 6d 09 09 |d: self | 0 ;m..|
|00001b00| 5c 20 41 53 53 45 52 54 | 7b 20 74 68 69 73 20 6f |\ ASSERT|{ this o|
|00001b10| 70 20 61 6c 77 61 79 73 | 20 73 75 63 63 65 65 64 |p always| succeed|
|00001b20| 73 21 20 7d 09 3a 2d 29 | 0d 0d 0d 5c 09 09 3d 3d |s! }.:-)|...\..==|
|00001b30| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 20 53 65 72 69 61 6c |========|= Serial|
|00001b40| 69 7a 61 74 69 6f 6e 20 | 3d 3d 3d 3d 3d 3d 3d 3d |ization |========|
|00001b50| 3d 3d 3d 0d 0d 5c 20 66 | 6f 72 20 73 65 6e 64 3a |===..\ f|or send:|
|00001b60| 20 61 6e 64 20 62 72 69 | 6e 67 3a 2c 20 77 65 20 | and bri|ng:, we |
|00001b70| 64 6f 6e 27 74 20 63 61 | 6c 6c 20 73 75 70 65 72 |don't ca|ll super|
|00001b80| 2c 20 73 69 6e 63 65 20 | 77 65 20 64 6f 6e 27 74 |, since |we don't|
|00001b90| 20 6e 65 65 64 0d 5c 20 | 20 74 68 65 20 68 61 6e | need.\ | the han|
|00001ba0| 64 6c 65 20 73 61 76 65 | 64 2e 20 20 49 6e 20 70 |dle save|d. In p|
|00001bb0| 61 72 74 69 63 75 6c 61 | 72 2c 20 77 65 20 64 6f |articula|r, we do|
|00001bc0| 6e 27 74 20 77 61 6e 74 | 20 69 74 20 62 72 6f 75 |n't want| it brou|
|00001bd0| 67 68 74 20 62 61 63 6b | 21 0d 0d 3a 6d 20 53 45 |ght back|!..:m SE|
|00001be0| 4e 44 3a 20 20 7b 20 73 | 74 72 65 61 6d 20 2d 2d |ND: { s|tream --|
|00001bf0| 20 7d 0d 09 6c 6f 63 6b | 3a 20 73 65 6c 66 0d 09 | }..lock|: self..|
|00001c00| 5e 62 61 73 65 20 34 2b | 20 20 31 34 20 20 77 72 |^base 4+| 14 wr|
|00001c10| 69 74 65 3a 20 5b 20 73 | 74 72 65 61 6d 20 5d 20 |ite: [ s|tream ] |
|00001c20| 20 4f 4b 3f 0d 09 61 6c | 6c 3a 20 73 65 6c 66 20 | OK?..al|l: self |
|00001c30| 20 77 72 69 74 65 3a 20 | 5b 20 73 74 72 65 61 6d | write: |[ stream|
|00001c40| 20 5d 20 20 4f 4b 3f 0d | 09 75 6e 6c 6f 63 6b 3a | ] OK?.|.unlock:|
|00001c50| 20 73 65 6c 66 0d 3b 6d | 0d 0d 3a 6d 20 42 52 49 | self.;m|..:m BRI|
|00001c60| 4e 47 3a 20 20 7b 20 73 | 74 72 65 61 6d 20 2d 2d |NG: { s|tream --|
|00001c70| 20 7d 0d 09 3f 6e 65 77 | 3a 20 73 65 6c 66 09 09 | }..?new|: self..|
|00001c80| 5c 20 77 65 20 64 6f 20 | 74 68 69 73 20 66 69 72 |\ we do |this fir|
|00001c90| 73 74 2c 20 61 73 20 69 | 74 20 63 61 6e 20 63 6c |st, as i|t can cl|
|00001ca0| 65 61 72 20 70 6f 73 20 | 61 6e 64 20 6c 69 6d 21 |ear pos |and lim!|
|00001cb0| 0d 09 5e 62 61 73 65 20 | 34 2b 20 20 31 34 20 20 |..^base |4+ 14 |
|00001cc0| 72 65 61 64 3a 20 5b 20 | 73 74 72 65 61 6d 20 5d |read: [ |stream ]|
|00001cd0| 20 20 4f 4b 3f 0d 5c 20 | 6e 6f 77 20 74 68 65 20 | OK?.\ |now the |
|00001ce0| 73 69 7a 65 20 69 76 61 | 72 20 73 68 6f 75 6c 64 |size iva|r should|
|00001cf0| 20 62 65 20 72 69 67 68 | 74 2e 2e 2e 0d 09 73 69 | be righ|t.....si|
|00001d00| 7a 65 3a 20 73 65 6c 66 | 20 20 5e 62 61 73 65 20 |ze: self| ^base |
|00001d10| 20 73 65 74 73 69 7a 65 | 3a 20 63 6c 61 73 73 5f | setsize|: class_|
|00001d20| 61 73 3e 20 68 61 6e 64 | 6c 65 0d 09 6c 6f 63 6b |as> hand|le..lock|
|00001d30| 3a 20 73 65 6c 66 0d 09 | 61 6c 6c 3a 20 73 65 6c |: self..|all: sel|
|00001d40| 66 20 20 72 65 61 64 3a | 20 5b 20 73 74 72 65 61 |f read:| [ strea|
|00001d50| 6d 20 5d 20 20 4f 4b 3f | 0d 09 75 6e 6c 6f 63 6b |m ] OK?|..unlock|
|00001d60| 3a 20 73 65 6c 66 0d 3b | 6d 0d 0d 0d 3a 6d 20 44 |: self.;|m...:m D|
|00001d70| 55 4d 50 3a 20 20 7b 20 | 5c 20 6f 66 66 73 20 73 |UMP: { |\ offs s|
|00001d80| 76 43 75 72 73 20 2d 2d | 20 7d 0d 09 6e 69 6c 3f |vCurs --| }..nil?|
|00001d90| 3a 20 73 65 6c 66 20 20 | 69 66 20 20 4e 6f 70 65 |: self |if Nope|
|00001da0| 6e 20 20 45 58 49 54 20 | 20 54 48 45 4e 0d 09 63 |n EXIT | THEN..c|
|00001db0| 75 72 73 20 2d 3e 20 73 | 76 43 75 72 73 20 20 2d |urs -> s|vCurs -|
|00001dc0| 63 75 72 73 0d 09 61 6c | 6c 3a 20 73 65 6c 66 20 |curs..al|l: self |
|00001dd0| 20 73 77 61 70 20 2e 68 | 20 2e 68 20 20 35 20 73 | swap .h| .h 5 s|
|00001de0| 70 61 63 65 73 0d 09 2e | 22 20 70 6f 73 3a 20 22 |paces...|" pos: "|
|00001df0| 20 20 70 6f 73 3a 20 73 | 65 6c 66 20 2e 68 20 20 | pos: s|elf .h |
|00001e00| 32 20 73 70 61 63 65 73 | 0d 09 2e 22 20 6c 69 6d |2 spaces|..." lim|
|00001e10| 3a 20 22 20 20 6c 69 6d | 3a 20 73 65 6c 66 20 2e |: " lim|: self .|
|00001e20| 68 20 20 63 72 0d 09 70 | 6f 73 3a 20 73 65 6c 66 |h cr..p|os: self|
|00001e30| 20 35 20 2d 20 30 20 6d | 61 78 20 20 2d 3e 20 6f | 5 - 0 m|ax -> o|
|00001e40| 66 66 73 0d 09 61 6c 6c | 3a 20 73 65 6c 66 20 20 |ffs..all|: self |
|00001e50| 73 77 61 70 20 6f 66 66 | 73 20 2b 20 20 73 77 61 |swap off|s + swa|
|00001e60| 70 20 6f 66 66 73 20 2d | 20 20 38 30 20 6d 69 6e |p offs -| 80 min|
|00001e70| 20 20 62 6f 75 6e 64 73 | 0d 09 44 4f 20 20 69 20 | bounds|..DO i |
|00001e80| 63 40 20 20 62 6c 20 31 | 32 36 20 77 69 74 68 69 |c@ bl 1|26 withi|
|00001e90| 6e 3f 0d 09 09 4e 49 46 | 20 20 72 65 74 20 3d 20 |n?...NIF| ret = |
|00001ea0| 49 46 20 20 24 20 41 36 | 20 20 45 4c 53 45 20 20 |IF $ A6| ELSE |
|00001eb0| 24 20 44 37 20 20 54 48 | 45 4e 0d 09 09 54 48 45 |$ D7 TH|EN...THE|
|00001ec0| 4e 0d 09 09 65 6d 69 74 | 0d 09 4c 4f 4f 50 20 20 |N...emit|..LOOP |
|00001ed0| 63 72 0d 09 70 6f 73 3a | 20 73 65 6c 66 20 20 6f |cr..pos:| self o|
|00001ee0| 66 66 73 20 2d 20 73 70 | 61 63 65 73 20 20 26 20 |ffs - sp|aces & |
|00001ef0| 50 20 20 65 6d 69 74 20 | 20 63 72 0d 09 6c 69 6d |P emit | cr..lim|
|00001f00| 3a 20 73 65 6c 66 20 20 | 6f 66 66 73 20 2d 0d 09 |: self |offs -..|
|00001f10| 64 75 70 20 38 30 20 3c | 20 49 46 20 20 73 70 61 |dup 80 <| IF spa|
|00001f20| 63 65 73 20 20 26 20 4c | 20 20 65 6d 69 74 20 20 |ces & L| emit |
|00001f30| 45 4c 53 45 20 20 64 72 | 6f 70 20 20 54 48 45 4e |ELSE dr|op THEN|
|00001f40| 0d 09 5e 31 73 74 3a 20 | 73 65 6c 66 20 20 6c 65 |..^1st: |self le|
|00001f50| 6e 3a 20 73 65 6c 66 20 | 20 30 20 6d 61 78 20 20 |n: self | 0 max |
|00001f60| 24 20 31 34 30 20 20 6d | 69 6e 20 20 64 75 6d 70 |$ 140 m|in dump|
|00001f70| 0d 09 73 76 43 75 72 73 | 20 2d 3e 20 63 75 72 73 |..svCurs| -> curs|
|00001f80| 20 20 3b 6d 0d 0d 3a 6d | 20 52 44 3a 09 72 65 73 | ;m..:m| RD:.res|
|00001f90| 65 74 3a 20 73 65 6c 66 | 20 20 64 75 6d 70 3a 20 |et: self| dump: |
|00001fa0| 73 65 6c 66 20 20 3b 6d | 09 09 5c 20 48 61 6e 64 |self ;m|..\ Hand|
|00001fb0| 79 2c 20 61 6e 64 20 73 | 68 6f 72 74 20 74 6f 20 |y, and s|hort to |
|00001fc0| 74 79 70 65 21 0d 0d 3b | 63 6c 61 73 73 0d 0d 3c |type!..;|class..<|
|00001fd0| 22 20 46 69 6c 65 73 0d | 0d 2b 65 63 68 6f 0d 0d |" Files.|.+echo..|
|00001fe0| 3a 20 71 20 64 62 0d 09 | 74 65 6d 70 7b 20 73 74 |: q db..|temp{ st|
|00001ff0| 72 69 6e 67 20 73 20 7d | 0d 09 22 20 68 65 6c 6c |ring s }|.." hell|
|00002000| 6f 22 20 70 75 74 3a 20 | 73 0d 09 64 75 6d 70 3a |o" put: |s..dump:|
|00002010| 20 73 20 20 3b 0d 00 00 | 00 00 00 00 00 00 00 00 | s ;...|........|
|00002020| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00002030| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00002040| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00002050| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00002060| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00002070| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00002080| 00 00 01 00 00 00 01 42 | 00 00 00 42 00 00 00 3b |.......B|...B...;|
|00002090| 06 b9 92 13 c8 8f 60 17 | 1f ea 5e 10 e6 0c 53 5a |......`.|..^...SZ|
|000020a0| 5e 14 d9 23 1f 5f ff fe | 23 17 12 b9 16 53 5b 60 |^..#._..|#....S[`|
|000020b0| 06 53 74 72 69 6e 67 53 | 02 00 00 00 50 61 72 74 |.StringS|....Part|
|000020c0| 53 49 54 21 00 00 00 00 | 00 00 00 00 00 01 82 91 |SIT!....|........|
|000020d0| 00 00 50 61 72 74 53 49 | 54 21 00 00 00 00 00 00 |..PartSI|T!......|
|000020e0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000020f0| 00 00 b3 66 c2 80 00 00 | 00 00 00 00 01 7d 54 5d |...f....|.....}T]|
|00002100| 7b 23 1c 08 57 53 5b 7b | 60 4b e5 e6 04 5f 05 a0 |{#..WS[{|`K..._..|
|00002110| e6 0b 01 1c 7b 23 1e 54 | 55 0c 23 1d 16 5d 16 5d |....{#.T|U.#..].]|
|00002120| 56 56 17 1f 92 dd 4e ac | eb 92 06 5b 03 00 1c 00 |VV....N.|...[....|
|00002130| 16 56 f7 02 4f 05 80 1f | be dd 60 a3 16 56 8f 2f |.V..O...|..`..V./|
|00002140| 60 12 55 0f c0 12 55 0e | be 75 29 12 a4 57 2d 12 |`.U...U.|.u)..W-.|
|00002150| 6c 46 16 a4 24 4b 1d 19 | 90 1a 16 56 f7 02 16 a4 |lF..$K..|...V....|
|00002160| 27 9a 5f 2f 7c 4f 05 65 | e6 0e 16 a4 28 9b 09 53 |'._/|O.e|....(..S|
|00002170| 55 0c 4b e6 0a 5f 05 a0 | e6 0b 2b 60 2c 63 30 13 |U.K.._..|..+`,c0.|
|00002180| 00 00 00 3e 00 00 00 00 | 00 00 0b bd 00 00 00 00 |...>....|........|
|00002190| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000021a0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 1c eb |........|........|
|000021b0| 00 00 1c eb 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000021c0| 00 00 00 00 01 00 00 00 | 01 42 00 00 00 42 00 00 |........|.B...B..|
|000021d0| 00 3b 02 66 31 98 25 18 | 00 00 00 1c 00 32 00 00 |.;.f1.%.|.....2..|
|000021e0| 4d 49 46 4f 00 00 00 0a | 00 80 00 00 00 00 00 00 |MIFO....|........|
|000021f0| 02 66 39 e8 08 4d 69 73 | 63 49 6e 66 6f 00 00 00 |.f9..Mis|cInfo...|
+--------+-------------------------+-------------------------+--------+--------+